package com.water_work_form.controller;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.water_work_form.entity.BasicVolume;
import com.water_work_form.result.Result;
import com.water_work_form.result.ResultCodeEnum;
import com.water_work_form.result.ResultUtil;
import com.water_work_form.service.BasicVolumeService;
import com.water_work_form.util.RandomIdUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * <p>
 * 基础表——取样体积 前端控制器
 * </p>
 *
 * @author xuke
 * @since 2023-08-01
 */

@Api(tags = {"取样体积 前端控制器"})
@RestController
@RequestMapping("/basic-volume")
public class BasicVolumeController {

    @Autowired
    BasicVolumeService basicVolumeService;

    /**
     * 取样体积 新增项目
     * @param basicVolume 新项目
     * @return  result code 0成功
     */
    @ApiOperation("新增")
    @PostMapping("/add")
    public Result addBasicVolume(@RequestBody BasicVolume basicVolume){
        basicVolume.setId(RandomIdUtil.createRandomId());
        basicVolumeService.save(basicVolume);
        return ResultUtil.success(ResultCodeEnum.SUCCESS, basicVolume);
    }

    /**
     * 取样体积 查看（分页）
     * @param name 检测项目
     * @param current 分页 当前页
     * @param size 分页 每页数据量
     * @return 返回当前页数据
     */
    @ApiOperation("查看(分页)")
    @GetMapping("/pageList")
    public Result listBasicVolume(@RequestParam("name") String name, @RequestParam("current") Integer current,
                              @RequestParam("size") Integer size){
        IPage<BasicVolume> page = basicVolumeService.listVolume(name, current, size);
        return ResultUtil.success(ResultCodeEnum.SUCCESS, page);
    }

    /**
     * 取样体积 根据id删除项目
     * @param id 删除项目的id
     * @return result code 0成功
     */
    @ApiOperation("删除")
    @DeleteMapping("/delete")
    public Result deleteBasicVolume(@RequestParam("id") Long id){
        basicVolumeService.removeById(id);
        return ResultUtil.success(ResultCodeEnum.SUCCESS);
    }

    /**
     * 取样体积 更新项目
     * @param basicVolume 更新的项目
     * @return result code 0成功
     */
    @ApiOperation("更新")
    @PostMapping("/update")
    public Result updateBasicVolume(@RequestBody BasicVolume basicVolume){
        basicVolumeService.updateById(basicVolume);
        return ResultUtil.success(ResultCodeEnum.SUCCESS);
    }

}

